
package com.thinkgem.jeesite.common.component.redis.element;

import redis.clients.jedis.Jedis;

/** 
 * 放置rds的控制类元素操作
 *
 */
public class RdsCtrl {

	public RdsCtrl(Jedis jedis) {
	    super();
	    this.jedis = jedis;
    }

	public Jedis getJedis() {
    	return jedis;
    }

	public void setJedis(Jedis jedis) {
    	this.jedis = jedis;
    }

	/**
	 * 选择客户端所要连接的库
	 * (库的个数与编号参考配置文件说明)
	 * @param index
	 * @return
	 * 2014-10-27
	 */
	public String dbSelect(int index) {
		return getJedis().select(index);
	}


	/**
	 * 将指定key数据从当前库移动到目标库(通过索引标识),成功返回1,失败返回0.
	 * (当前库不存在要移动的key时,或者目标库已经有相同的key时才会失败.)
	 * @param key
	 * @param dbIndex
	 * @return
	 * 2014-10-27
	 */
	public Long dbMove(String key,int dbIndex) {
		return getJedis().move(key, dbIndex);
	}

	/**
	 * 清空当前库的所有数据
	 * @return
	 * 2014-10-27
	 */
	public String dbFlush() {
		return getJedis().flushDB();
	}

	/**
	 * 清空所有库的所有数据
	 * (危险!当采用分布式结构时尤其注意不要清理掉其他备库的数据,因此当采用分布式结构时该接口禁用)
	 * @return
	 * 2014-10-27
    	private String dbFlushAll() {
    		return getJedis().flushAll();
    	}
	 */

	/**
	 * 查看当前库的key数(数据个数)
	 * @return
	 * 2014-10-27
	 */
	public long dbSize() {
		return getJedis().dbSize();
	}

	private Jedis jedis;//当前客户端

}
